package com.ssm.jvm.str;

public class StringTest3 {

    public static void main(String[] args) {
        String str2 = new StringBuilder("计算机").append("技术").toString();
// 因为没有出现"计算机技术"字面量，只有“计算机”、“技术”，所以不会在常量池里生成"计算机技术"，在池中没有，但是在 heap 中存在，则intern 时，会直接返回该 heap 中的引用。
        System.out.println(str2 == str2.intern()); // true

        String str1 = new StringBuilder("ja").append("va").toString();
// 这是因为java是关键字，在JVM初始化的相关类里肯定早就放进字符串常量池了。
        System.out.println(str1 == str1.intern()); // false

        String s1 = new String("test");
        System.out.println(s1 == s1.intern()); // true

        String s2 = new StringBuilder("abc").toString();
// StringBuilder 的 toString 方法会 new String()，“abc”作为字面量是会放到常量池中的
        System.out.println(s2 == s2.intern()); // false
    }
}
